﻿using System;
using System.Data;
using System.Data.SqlClient;
using System.Windows.Forms;
using Poligas_ERP.Classes;

namespace Sys.Project.Formularios
{
    public partial class FrmProdutoConsulta : Form
    {
        SqlConnection cnx = new SqlConnection();
        SqlCommand cmd = new SqlCommand();
        SqlDataReader dr;
        DataTable dt = new DataTable();
        
        ProdutoConsulta ProdCons = new ProdutoConsulta();

        public string IdProduto { get; set; }
        public string CodigoProduto { get; set; }
        public string DescricaoProduto { get; set; }
        public string ValorUnit { get; set; }
        public string IdUnidade { get; set; }

        bool selecionado = false;

        public FrmProdutoConsulta()
        {
            InitializeComponent();
        }

        void AtualizarDados()
        {
            dgvProduto.DataSource = ProdCons.AtualizarDados(txtPesquisar.Text);
         /*   cmd.Connection = cnx;
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.CommandText = "spProdutosSelect";
            cmd.Parameters.Clear();
            cmd.Parameters.AddWithValue("@prod_Desc", txtPesquisar.Text);

            if (cnx.State != ConnectionState.Open)
                cnx.Open();

            using (dr = cmd.ExecuteReader(CommandBehavior.CloseConnection))
            {
                dt.Clear();
                dt.Load(dr);

                dgvProduto.DataSource = dt;
            }*/
            RecuperarDadosPorCodigo();
        }
        void RecuperarDadosPorCodigo()
        {
            if (dgvProduto.CurrentRow != null)
            {
                //lblId.Text = dgvProduto.SelectedRows[0].Cells["CodProduto"].Value.ToString();
                txtCodigo.Text = dgvProduto.SelectedRows[0].Cells["CodProduto"].Value.ToString();
                txtNome.Text = dgvProduto.SelectedRows[0].Cells["Descricao"].Value.ToString();
                lblUnit.Text = dgvProduto.SelectedRows[0].Cells["VlVenda"].Value.ToString();
                lblUnidade.Text = dgvProduto.SelectedRows[0].Cells["Sigla"].Value.ToString();
            }
            else
            {
                lblId.Text = string.Empty;
                lblUnit.Text = string.Empty;
                lblUnidade.Text = string.Empty;
                txtNome.Clear();
                txtCodigo.Clear();
            }
        }

        private void FrmProdutoConsulta_Load(object sender, EventArgs e)
        {
            dgvProduto.AutoGenerateColumns = false;
            AtualizarDados();
        }

        private void txtPesquisar_TextChanged(object sender, EventArgs e)
        {
            AtualizarDados();
        }

        private void dgvProduto_RowEnter(object sender, DataGridViewCellEventArgs e)
        {
            RecuperarDadosPorCodigo();
        }
        private void btnSelecionar_Click(object sender, EventArgs e)
        {
            cmdSelecionarProduto();
        }

        private void cmdSelecionarProduto()
        {
            if(!string.IsNullOrEmpty(txtCodigo.Text.Trim()))
            {
                IdProduto = txtCodigo.Text;
                CodigoProduto = IdProduto;
                DescricaoProduto = txtNome.Text;
                decimal unit = 0M;
                decimal.TryParse(lblUnit.Text, out unit);
                ValorUnit = string.Format("{0:N2}", unit);
                IdUnidade = lblUnidade.Text.ToString();
                selecionado = true;
            }
        }


        private void FrmProdutoConsulta_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (!selecionado)
            {
                IdProduto = string.Empty;
                DescricaoProduto = string.Empty;
                //CodigoProduto = string.Empty;
                IdUnidade = string.Empty;

            }
        }

        private void dgvProduto_CellMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e)
        {
            cmdSelecionarProduto();
            Close();
        }

        
    }
}